// ItemListActivity.java
package com.xxxy.ljh.myapplication.activity;

import android.os.Bundle;
import android.widget.Button;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import com.xxxy.ljh.myapplication.Adapter.ItemAdapter;
import com.xxxy.ljh.myapplication.Dao.ItemDao;
import com.xxxy.ljh.myapplication.DaoImpl.ItemDaoImpl;
import com.xxxy.ljh.myapplication.R;
import com.xxxy.ljh.myapplication.model.Item;
import java.util.ArrayList;
import java.util.List;

/**
 * 物品列表展示页面
 * 用于显示所有物品信息，并提供返回功能
 */
public class ItemListActivity extends AppCompatActivity {

    private RecyclerView recyclerViewItems;
    private ItemAdapter itemAdapter;
    private List<Item> itemList;
    private Button btnBack;

    /**
     * Activity创建时的回调方法
     * 初始化界面布局并加载相关数据
     *
     * @param savedInstanceState 保存的实例状态Bundle对象，用于恢复之前的状态
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_item_list);

        initViews();
        setupRecyclerView();
        loadItems();
        setupEventListeners();
    }

    /**
     * 初始化界面控件
     * 获取布局中的各个组件引用并初始化数据列表
     */
    private void initViews() {
        recyclerViewItems = findViewById(R.id.recyclerViewItems);
        btnBack = findViewById(R.id.btnBack);
        itemList = new ArrayList<>();
    }

    /**
     * 设置RecyclerView配置
     * 配置适配器、布局管理器等RecyclerView相关设置
     */
    private void setupRecyclerView() {
        itemAdapter = new ItemAdapter(itemList, this);
        recyclerViewItems.setLayoutManager(new LinearLayoutManager(this));
        recyclerViewItems.setAdapter(itemAdapter);
    }

    /**
     * 加载物品数据
     * 从数据库中获取所有物品信息并更新到界面上
     */
    private void loadItems() {
        try {
            // 从数据库加载物品数据
            ItemDao itemDao = new ItemDaoImpl(this);
            itemList.clear();
            // 获取所有物品，实际应用中可以根据社团ID筛选
            List<Item> dbItems = itemDao.getAllItems();
            itemList.addAll(dbItems);
            itemAdapter.updateList(itemList);
        } catch (Exception e) {
            Toast.makeText(this, "加载物品数据失败: " + e.getMessage(), Toast.LENGTH_SHORT).show();
            e.printStackTrace();
        }
    }

    /**
     * 设置事件监听器
     * 为界面中的控件绑定相应的点击事件处理逻辑
     */
    private void setupEventListeners() {
        btnBack.setOnClickListener(v -> finish());
    }
}
